<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>lwIP: NETIF</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">lwIP
   &#160;<span id="projectnumber">2.1.2</span>
   </div>
   <div id="projectbrief">Lightweight IP stack</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__lwip__opts__netif.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#define-members">Macros</a>  </div>
  <div class="headertitle">
<div class="title">NETIF<div class="ingroups"><a class="el" href="group__lwip.html">lwIP</a> &raquo; <a class="el" href="group__lwip__opts.html">Options (lwipopts.h)</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group__lwip__opts__loop"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__loop.html">Loopback interface</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga943063b053eeac76b0b1bcef2ddd93be"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__netif.html#ga943063b053eeac76b0b1bcef2ddd93be">LWIP_SINGLE_NETIF</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ga943063b053eeac76b0b1bcef2ddd93be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa714dbfa66822ec4c6111bdb8cf753c1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__netif.html#gaa714dbfa66822ec4c6111bdb8cf753c1">LWIP_NETIF_HOSTNAME</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:gaa714dbfa66822ec4c6111bdb8cf753c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd45fb65f2d0e6de5a0d14ff9e101b77"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__netif.html#gadd45fb65f2d0e6de5a0d14ff9e101b77">LWIP_NETIF_API</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:gadd45fb65f2d0e6de5a0d14ff9e101b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaffb97d89516c38d3fcb9e44e5d707f36"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__netif.html#gaffb97d89516c38d3fcb9e44e5d707f36">LWIP_NETIF_STATUS_CALLBACK</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:gaffb97d89516c38d3fcb9e44e5d707f36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga090482867ba04d442ab5b8ad745c0e1e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__netif.html#ga090482867ba04d442ab5b8ad745c0e1e">LWIP_NETIF_EXT_STATUS_CALLBACK</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ga090482867ba04d442ab5b8ad745c0e1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a446932dd927cc4136ba654c13bb97b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__netif.html#ga1a446932dd927cc4136ba654c13bb97b">LWIP_NETIF_LINK_CALLBACK</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ga1a446932dd927cc4136ba654c13bb97b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c942c2e9655b06d4f73c630d30f60bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__netif.html#ga9c942c2e9655b06d4f73c630d30f60bf">LWIP_NETIF_REMOVE_CALLBACK</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ga9c942c2e9655b06d4f73c630d30f60bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1d5e878d94b56ba687cef69be936ad9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__netif.html#gad1d5e878d94b56ba687cef69be936ad9">LWIP_NETIF_HWADDRHINT</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:gad1d5e878d94b56ba687cef69be936ad9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabafb9f64a80e51b56c0abbcfc1f7e04e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__netif.html#gabafb9f64a80e51b56c0abbcfc1f7e04e">LWIP_NETIF_TX_SINGLE_PBUF</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:gabafb9f64a80e51b56c0abbcfc1f7e04e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga94a35212616f9a9aae5c98741612b936"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__netif.html#ga94a35212616f9a9aae5c98741612b936">LWIP_NUM_NETIF_CLIENT_DATA</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ga94a35212616f9a9aae5c98741612b936"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gadd45fb65f2d0e6de5a0d14ff9e101b77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadd45fb65f2d0e6de5a0d14ff9e101b77">&#9670;&nbsp;</a></span>LWIP_NETIF_API</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_NETIF_API&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>LWIP_NETIF_API==1: Support netif api (in <a class="el" href="netifapi_8c.html">netifapi.c</a>) </p>

</div>
</div>
<a id="ga090482867ba04d442ab5b8ad745c0e1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga090482867ba04d442ab5b8ad745c0e1e">&#9670;&nbsp;</a></span>LWIP_NETIF_EXT_STATUS_CALLBACK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_NETIF_EXT_STATUS_CALLBACK&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>LWIP_NETIF_EXT_STATUS_CALLBACK==1: Support an extended callback function for several netif related event that supports multiple subscribers. </p><dl class="section see"><dt>See also</dt><dd>netif_ext_status_callback </dd></dl>

</div>
</div>
<a id="gaa714dbfa66822ec4c6111bdb8cf753c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa714dbfa66822ec4c6111bdb8cf753c1">&#9670;&nbsp;</a></span>LWIP_NETIF_HOSTNAME</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_NETIF_HOSTNAME&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>LWIP_NETIF_HOSTNAME==1: use DHCP_OPTION_HOSTNAME with netif's hostname field. </p>

</div>
</div>
<a id="gad1d5e878d94b56ba687cef69be936ad9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad1d5e878d94b56ba687cef69be936ad9">&#9670;&nbsp;</a></span>LWIP_NETIF_HWADDRHINT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_NETIF_HWADDRHINT&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>LWIP_NETIF_HWADDRHINT==1: Cache link-layer-address hints (e.g. table indices) in struct netif. TCP and UDP can make use of this to prevent scanning the ARP table for every sent packet. While this is faster for big ARP tables or many concurrent connections, it might be counterproductive if you have a tiny ARP table or if there never are concurrent connections. </p>

</div>
</div>
<a id="ga1a446932dd927cc4136ba654c13bb97b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1a446932dd927cc4136ba654c13bb97b">&#9670;&nbsp;</a></span>LWIP_NETIF_LINK_CALLBACK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_NETIF_LINK_CALLBACK&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>LWIP_NETIF_LINK_CALLBACK==1: Support a callback function from an interface whenever the link changes (i.e., link down) </p>

</div>
</div>
<a id="ga9c942c2e9655b06d4f73c630d30f60bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9c942c2e9655b06d4f73c630d30f60bf">&#9670;&nbsp;</a></span>LWIP_NETIF_REMOVE_CALLBACK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_NETIF_REMOVE_CALLBACK&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>LWIP_NETIF_REMOVE_CALLBACK==1: Support a callback function that is called when a netif has been removed </p>

</div>
</div>
<a id="gaffb97d89516c38d3fcb9e44e5d707f36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaffb97d89516c38d3fcb9e44e5d707f36">&#9670;&nbsp;</a></span>LWIP_NETIF_STATUS_CALLBACK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_NETIF_STATUS_CALLBACK&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface changes its up/down status (i.e., due to DHCP IP acquisition) </p>

</div>
</div>
<a id="gabafb9f64a80e51b56c0abbcfc1f7e04e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabafb9f64a80e51b56c0abbcfc1f7e04e">&#9670;&nbsp;</a></span>LWIP_NETIF_TX_SINGLE_PBUF</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_NETIF_TX_SINGLE_PBUF&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP <em>tries</em> to put all data to be sent into one single pbuf. This is for compatibility with DMA-enabled MACs that do not support scatter-gather. Beware that this might involve CPU-memcpy before transmitting that would not be needed without this flag! Use this only if you need to!</p>
<p>ATTENTION: a driver should <em>NOT</em> rely on getting single pbufs but check TX pbufs for being in one piece. If not, <a class="el" href="group__pbuf.html#gafdb04fb0f37f0422fd44ec0fcec8ebd0">pbuf_clone</a> can be used to get a single pbuf: if (p-&gt;next != NULL) { struct pbuf *q = pbuf_clone(PBUF_RAW, PBUF_RAM, p); if (q == NULL) { return ERR_MEM; } p = q; ATTENTION: do NOT free the old 'p' as the ref belongs to the caller! } </p>

</div>
</div>
<a id="ga94a35212616f9a9aae5c98741612b936"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga94a35212616f9a9aae5c98741612b936">&#9670;&nbsp;</a></span>LWIP_NUM_NETIF_CLIENT_DATA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_NUM_NETIF_CLIENT_DATA&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>LWIP_NUM_NETIF_CLIENT_DATA: Number of clients that may store data in client_data member array of struct netif (max. 256). </p>

</div>
</div>
<a id="ga943063b053eeac76b0b1bcef2ddd93be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga943063b053eeac76b0b1bcef2ddd93be">&#9670;&nbsp;</a></span>LWIP_SINGLE_NETIF</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_SINGLE_NETIF&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>LWIP_SINGLE_NETIF==1: use a single netif only. This is the common case for small real-life targets. Some code like routing etc. can be left out. </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
